/**
 *   Copyright 2021 Alibaba, Inc. and its affiliates. All Rights Reserved.
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *   \author   guonix
 *   \date     Dec 2020
 *   \brief
 */
#pragma once

#include <ailego/io/file.h>
#include <ailego/utility/file_helper.h>

struct ScopeFile {
  ScopeFile(const std::string &file, bool open = false) : file_(file) {
    if (open) {
      ;
    }
  }

  ~ScopeFile() {
    ailego::File::Delete(file_);
  }

  operator std::string() {
    return file_;
  }
  operator std::string &() {
    return file_;
  }

  std::string file_{};
};

inline std::string TempFile() {
  std::string work_path;
  ailego::FileHelper::GetWorkingDirectory(&work_path);
  work_path.append("/meta.sqlite");
  return work_path;
}
